encyklopedia.space

Przestrzeń adresowa

Przestrzeń adresowa – pojęcie używane w informatyce, elektronice i systemach komputerowych, określające zbiór wszystkich możliwych adresów, które mogą być przydzielone do elementów pamięci, urządzeń wejścia‑wyjścia, zasobów sieciowych lub innych elementów systemu. Przestrzeń ta definiuje zakres adresów, w którym system operuje i które mogą być używane przez programy oraz sprzęt.

Definicja

Adres to unikatowy identyfikator, który pozwala na odwoływanie się do określonego miejsca w pamięci lub interfejsu komunikacyjnego. Przestrzeń adresowa to formalny zbiór wszystkich takich identyfikatorów, wyrażony zazwyczaj jako przedział liczb całkowitych (np. od 0x0000 do 0xFFFF) albo jako ciąg bitów o określonej długości.

Rozmiar przestrzeni adresowej zależy od liczby dostępnych bitów w adresie. Dla systemu 8‑bitowego maksymalna przestrzeń wynosi 2⁸ = 256 adresów, dla 32‑bitowego 2³² ≈ 4,29·10⁹ adresów, a dla 64‑bitowego 2⁶⁴ ≈ 1,84·10¹⁹ adresów.

Rodzaje przestrzeni adresowej

  • Przestrzeń adresowa pamięci (memory address space) – odnosi się do adresów wirtualnych i fizycznych pamięci komputera. Rozróżnia się:
  • Przestrzeń adresowa I/O – zakres adresów przeznaczonych dla urządzeń wejścia‑wyjścia, wykorzystywany w architekturach x86 oraz w systemach mikroprocesorowych.
  • Przestrzeń adresowa sieciowa – obejmuje adresy przydzielane w sieciach komputerowych, takie jak adres IP (IPv4: 32 bity, IPv6: 128 bitów) oraz adresy MAC.
  • Przestrzeń adresowa systemu plików – wirtualne identyfikatory plików i katalogów, np. identyfikatory inode w systemach Unix-opartych.

Historia i rozwój

Początkowo, w latach 19701980 wczesnych komputerów osobistych, przestrzeń adresowa była ograniczona do kilku kilobajtów, co wymuszało stosowanie technik takich jak segmentacja i bankowanie pamięci. Wraz z rozwojem architektury 32‑bitowej w 1990 roku oraz późniejszym przejściem na 64‑bitowe architektury (np. AMD64, Intel Itanium), możliwe stało się adresowanie terabajtów pamięci.

Zastosowanie

Przestrzeń adresowa jest kluczowa w wielu dziedzinach:

  • Systemy operacyjne – zarządzają wirtualną przestrzenią adresową, mapując ją na fizyczną pamięć RAM i dysk twardy.
  • Programowanie – wskaźniki i referencje w językach takich jak C czy C++ operują na adresach pamięci.
  • Komunikacja sieciowa – routing i translacje adresów (np. NAT) opierają się na manipulacji przestrzenią adresową IP.
  • Urządzenia wbudowane – kontrolery mikrokontrolerów wykorzystują dedykowane przestrzenie I/O do sterowania peryferiami.

Przykłady

Przykładowa 32‑bitowa przestrzeń adresowa w systemie operacyjnym:

0x00000000 – 0x7FFFFFFF  :  użytkowa (przestrzeń procesów)
0x80000000 – 0xFFFFFFFF  :  jądro systemu (kernel space)
  

W przypadku adresacji IPv4, każdy adres jest 32‑bitowy, co daje łącznie 2³² = 4 294 967 296 możliwych adresów, podzielonych na klasy A, B, C oraz specjalne zakresy (np. 127.0.0.0/8 – adres loopback).

Powiązane pojęcia

Więcej informacji można znaleźć w następujących artykułach:

Literatura

  • Andrew S. Tanenbaum, Systemy operacyjne – projekt, implementacja i analiza, 4. wyd., PWN, 2022.
  • David A. Patterson, John L. Hennessy, Computer Organization and Design – The Hardware/Software Interface, 6. wyd., Morgan Kaufmann, 2020.
  • W. Richard Stevens, UNIX Network Programming, 3. wyd., Prentice Hall, 2019.